import request from '@/utils/request'
import config from '@/utils/config'
import { splitStr } from '@/api/common'

// ---------------------------新增溯源环节模板--------------------------
// ---------------------------新增溯源环节模板--------------------------
// ---------------------------新增溯源环节模板--------------------------

// 新增溯源环节模板
export function addSuYuanStep(params) {
  return request({
    url: config.BaseUrl + '/traceabilityTemplate/add',
    method: 'post',
    data: params
  })
}

// 获取溯源环节模板列表信息
export function getSuYuanStepList(params) {
  return request({
    url: config.BaseUrl + '/traceabilityTemplate/findList',
    method: 'get',
    params
  })
}

// 修改溯源环节模板
export function updateSuYuanStep(params) {
  return request({
    url: config.BaseUrl + '/traceabilityTemplate/update',
    method: 'post',
    data: params
  })
}

// 修改溯源环节模板
export function delSuYuanStep(params) {
  return request({
    url: config.BaseUrl + '/traceabilityTemplate/delete',
    method: 'get',
    params
  })
}

//
export function getSuYuanStepOne(params) {
  return request({
    url: config.BaseUrl + '/traceabilityTemplate/selectOne',
    method: 'get',
    params
  })
}

// ---------------------------------- 商品溯源 ------------------------------------
// ---------------------------------- 商品溯源 ------------------------------------
// ---------------------------------- 商品溯源 ------------------------------------
// 新增溯源商品
export function addSuYuanGoods(params) {
  return request({
    url: config.BaseUrl + '/traceabilityGoods/add',
    method: 'post',
    data: params
  })
}

// 启用溯源商品
export function updateYuanGoods(params) {
  return request({
    url: config.BaseUrl + '/traceabilityGoods/update',
    method: 'post',
    data: params
  })
}

// 获取溯源电商详细信息接口
export function getSuYuanGoodsDetail(params) {
  return request({
    url: config.BaseUrl + '/traceabilityGoods/selectOne',
    method: 'get',
    params
  })
}

// 分页获取溯源商品信息列表接口
export function getSuYuanGoodsList(params) {
  return request({
    url: config.BaseUrl + '/traceabilityGoods/findList',
    method: 'get',
    params
  })
}

// 删除溯源商品信息
export function delSuYuanGood(params) {
  return request({
    url: config.BaseUrl + '/traceabilityGoods/delete',
    method: 'get',
    params
  })
}

// 溯源商品-溯源环节配置
export function updateYuanConfig(params) {
  return request({
    url: config.BaseUrl + '/traceabilityGoods/deploy',
    method: 'post',
    data: params
  })
}

// ---------------------------------- 溯源标码 ------------------------------------
// ---------------------------------- 溯源标码 ------------------------------------
// ---------------------------------- 溯源标码 ------------------------------------

// 新增标码
export function addCode(params) {
  return request({
    url: config.BaseUrl + '/code/add',
    method: 'post',
    data: params
  })
}

// 修改标码
export function updateCode(params) {
  return request({
    url: config.BaseUrl + '/code/update',
    method: 'post',
    data: params
  })
}

// 删除标码
export function delCode(params) {
  return request({
    url: config.BaseUrl + '/code/delete',
    method: 'get',
    params
  })
}

// 分页获取标码列表
export function getCodeList(params) {
  return request({
    url: config.BaseUrl + '/code/findList',
    method: 'get',
    params
  })
}

// 获取标识码规则地址
export function getCodingRules(params) {
  return request({
    url: config.BaseUrl + '/code/getCodingRules',
    method: 'get',
    params
  })
}

// 启用停用标码
export function enableAndDisableCode(params) {
  return request({
    url: config.BaseUrl + '/code/enableAndDisable',
    method: 'post',
    data: params
  })
}

// 生成二维码接口
export function createCode(params) {
  let str = '?'
  for (const key in params) {
    str += key + '=' + params[key] + '&'
  }
  str = str.substring(0, str.length - 1)
  // console.log(str)
  window.location.href = config.BaseUrl + '/code/generateCode' + str
//   return request({
//     url: config.BaseUrl + '/code/generateCode',
//     method: 'get',
//     params
//   })
}

// 生成二维码接口
export function downloadCode(params) {
  let str = '?'
  for (const key in params) {
    str += key + '=' + params[key] + '&'
  }
  str = str.substring(0, str.length - 1)
  // console.log(str)
  window.location.href = config.BaseUrl + '/code/downloadCode' + str
  //   return request({
  //     url: config.BaseUrl + '/code/generateCode',
  //     method: 'get',
  //     params
  //   })
}

// 分页查询标码二位码生成记录列表
export function createCodeList(params) {
  return request({
    url: config.BaseUrl + '/codeRecord/findList',
    method: 'get',
    params
  })
}

// 删除标码二维码生成记录接口
export function delCodeRecord(params) {
  return request({
    url: config.BaseUrl + '/codeRecord/delete',
    method: 'get',
    params
  })
}

// ---------------------------------- 溯源商品批次 ------------------------------------
// ---------------------------------- 溯源商品批次 ------------------------------------
// ---------------------------------- 溯源商品批次 ------------------------------------

// 新增溯源商品批次
export function addBatch(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/add',
    method: 'post',
    data: params
  })
}

// 配置标码包 - 对应按钮 => 配置标码
export function configCode(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/configureCode',
    method: 'post',
    data: params
  })
}

// 商品溯源批次分页列表
export function getBatchList(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/findList',
    method: 'get',
    params
  })
}

// 根据溯源商品批次id获取详细信息
export function getTraceabilityBatchSelectOne(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/selectOne',
    method: 'get',
    params
  })
}

// 溯源商品批次环节上链接口
export function upLine(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/upperChain',
    method: 'get',
    params
  })
}

// 停用启用溯源批次接口
export function batchStopAndEnable(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/stopAndEnable',
    method: 'post',
    data: params
  })
}

// 删除商品溯源批次接口
export function delBatch(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/delete',
    method: 'get',
    params
  })
}

// 修改商品溯源批次
export function updateBatch(params) {
  return request({
    url: config.BaseUrl + '/traceabilityBatch/update',
    method: 'post',
    data: params
  })
}
